package com.xquant.trade.trade.entity;

import com.xquant.common.core.annotation.Excel;
import com.xquant.common.engine.xPP.request.CalcInstrumentForm;
import com.xquant.common.engine.xPP.request.CalcPricingForm;
import com.xquant.common.engine.xPP.request.CalcPricingParam;
import com.xquant.common.engine.xPP.request.CalcResultForm;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public class Trade implements Serializable {

    private static final long serialVersionUID = -8140693840257585779L;
    private String tradeId;
    @Excel(name = "产品编号")
    private String extTradeId;
    @Excel(name = "合约编号")
    private String iCode;
    @Excel(name = "期权类型",dictType = "optionType")
    private String productType;
    @Excel(name = "交易日期")
    private String tradeDate;
    @Excel(name = "标的代码")
    private String uICode;
    @Excel(name = "标的名称")
    private String uIName;
    @Excel(name = "买卖方向",dictType = "payDirection")
    private String payDirection;
    @Excel(name = "涨跌类型",dictType = "callPut")
    private String optionType;
    @Excel(name = "行权方式",dictType = "exerciseType")
    private String exerciseType;
    @Excel(name = "高行权价(元)",cellType = Excel.ColumnType.MONEY,scale = 2)
    private BigDecimal strikePrice = BigDecimal.ZERO;
    @Excel(name = "低行权价(元)",cellType = Excel.ColumnType.MONEY,scale = 2)
    private BigDecimal lowStrikePrice = BigDecimal.ZERO;
    @Excel(name = "收益率1(%)",cellType = Excel.ColumnType.PERCENT,scale = 2)
    private BigDecimal yield1 = BigDecimal.ZERO;
    @Excel(name = "收益率2(%)",cellType = Excel.ColumnType.PERCENT,scale = 2)
    private BigDecimal yield2 = BigDecimal.ZERO;
    @Excel(name = "收益率3(%)",cellType = Excel.ColumnType.PERCENT,scale = 2)
    private BigDecimal yield3 = BigDecimal.ZERO;
    @Excel(name = "障碍价1(元)",cellType = Excel.ColumnType.MONEY,scale = 2)
    private BigDecimal triggerPrice1 = BigDecimal.ZERO;
    @Excel(name = "障碍价2(元)",cellType = Excel.ColumnType.MONEY,scale = 2)
    private BigDecimal triggerPrice2 = BigDecimal.ZERO;
    @Excel(name = "期权费(元)",cellType = Excel.ColumnType.MONEY,scale = 2)
    private BigDecimal frontOptionFee = BigDecimal.ZERO;
    @Excel(name = "期权费率(%)",cellType = Excel.ColumnType.STRING)
    private BigDecimal frontOptionFeeRate = BigDecimal.ZERO;
    @Excel(name = "期权费年化",dictType = "boolType")
    private String frontOptionFeeYear = "1";

    @Excel(name = "期权费支付日")
    private String frontOptionFeePaydate;

    private Integer version;

    private Integer newVersion;

    public BigDecimal getFrontOptionFeeRate() {
        return frontOptionFeeRate;
    }

    public Trade setFrontOptionFeeRate(BigDecimal frontOptionFeeRate) {
        this.frontOptionFeeRate = frontOptionFeeRate;
        return this;
    }


    public BigDecimal getFrontFeeRate() {
        return frontFeeRate;
    }

    public Trade setFrontFeeRate(BigDecimal frontFeeRate) {
        this.frontFeeRate = frontFeeRate;
        return this;
    }

    public String getFrontOptionFeeYear() {
        return frontOptionFeeYear;
    }

    public Trade setFrontOptionFeeYear(String frontOptionFeeYear) {
        this.frontOptionFeeYear = frontOptionFeeYear;
        return this;
    }

    public String getFrontFeeYear() {
        return frontFeeYear;
    }

    public Trade setFrontFeeYear(String frontFeeYear) {
        this.frontFeeYear = frontFeeYear;
        return this;
    }

    @Excel(name = "前端费(元)",cellType = Excel.ColumnType.MONEY,scale = 2)
    private BigDecimal frontFee = BigDecimal.ZERO;
    @Excel(name = "前端费率(%)",cellType = Excel.ColumnType.STRING)
    private BigDecimal frontFeeRate = BigDecimal.ZERO;
    @Excel(name = "前端费年化",dictType = "boolType")
    private String frontFeeYear = "1";
    @Excel(name = "前端费支付日")
    private String frontFeePaydate;
    @Excel(name = "起始日")
    private String issueDate;
    @Excel(name = "到期日")
    private String maturityDate;
    @Excel(name = "到期支付日")
    private String paymentDate;

    private String terminateDate;
    @Excel(name = "提前终止费(元)",cellType = Excel.ColumnType.MONEY,scale = 2)
    private BigDecimal terminateFee = BigDecimal.ZERO;
    @Excel(name = "期初价格",cellType = Excel.ColumnType.MONEY,scale = 2)
    private double calcPrice;
    @Excel(name = "名义本金",cellType = Excel.ColumnType.MONEY,scale = 2)
    private BigDecimal volume = BigDecimal.ZERO;
    @Excel(name = "参与率1(%)",cellType = Excel.ColumnType.PERCENT,scale = 2)
    private BigDecimal participationRate1 = BigDecimal.ZERO;
    @Excel(name = "参与率2(%)",cellType = Excel.ColumnType.PERCENT,scale = 2)
    private BigDecimal participationRate2 = BigDecimal.ZERO;
//    @Excel(name = "固定利率(%)",cellType = Excel.ColumnType.PERCENT,scale = 2)
    private BigDecimal fixedRate = BigDecimal.ZERO;
    @Excel(name = "期权状态",dictType = "durationStatus")
    private String eventStatus;
    @Excel(name = "交易对手")
    private String partyName;
    @Excel(name = "本方账户")
    private String accName;

    private String tradeType;

    public String getDuEventStatus() {
        return duEventStatus;
    }

    public void setDuEventStatus(String duEventStatus) {
        this.duEventStatus = duEventStatus;
    }

    private String duEventStatus;


    private BigDecimal margin = BigDecimal.ZERO;


    private BigDecimal fee = BigDecimal.ZERO;
    private double strike=0;
    private double exerciseAmount=0;



    private String calcDate;






    private String tradeTime;
    private Integer tradeStatus;
    private String ocFlag;
    private String accId;
    private String accRight;
    private String accIdCp;
    private String accNameCp;

    public String getiName() {
        return iName;
    }

    public void setiName(String iName) {
        this.iName = iName;
    }


    private String iName;


    private String aType;
    private String mType;
    private String partyId;


    private String productName;
    private String dimAccId;
    private String remindDate;


    private String calendar = "CHINA_EX";
    private Map instrumentInfo;
    private CalcInstrumentForm calcInstrumentForm;
    private CalcPricingParam calcPricingParam;
    private CalcPricingForm calcPricingForm;
    private CalcResultForm calcResultForm;

    private BigDecimal volumeNum = BigDecimal.ZERO;


    private BigDecimal price = BigDecimal.ZERO;


    private BigDecimal amount = BigDecimal.ZERO;

    private BigDecimal amountCost = BigDecimal.ZERO;


    private BigDecimal marginCost = BigDecimal.ZERO;

    private BigDecimal bonus = BigDecimal.ZERO;
    private BigDecimal ai = BigDecimal.ZERO;
    private BigDecimal dueVolume = BigDecimal.ZERO;
    private BigDecimal dueBonus = BigDecimal.ZERO;
    private BigDecimal dueAi = BigDecimal.ZERO;
    private String currency;
    private String instrument;
    private String setDate;
    private String pTradeId;
    private String instanceId;
    private String extInfo;
    private String userId;
    private String remark;
    private String dimLs;
    private String dimExtAccId;
    private String pCode;
    private String dimSource;
    private BigDecimal dimIr = null;
    private String dimGuid;
    private String dimExpireDate;
    private List<Trade> details;
    private String actionType; // ADD,UPDATE,DELETE

    private double plFloat;
    private String pForm;
    private String pFormInstrument;
    private String pFormPricing;
    private String pFormResult;
    private String pCalc;
    private String pCalcInit;
    private String pCalcPricing;
    private String pCalcInstrument;


    private double oldPrice;

    private double yield; // ADD,UPDATE,DELETE
    private double hisYield;
    private double realizedYield;
    private double premium;

    private double lotSize;


    private String uAType;
    private String uMType;

    private double uPrice;


    private String eventExercise;


    private double npv;

    private double delta;
    private double cashDelta;
    private double gamma;
    private double cashGamma;
    private double theta;
    private double vega;
    private double rho;
    private String terminationDate;

    // summit的交易状态(Done/Verified/Cancelled)
    private String orderStatus;

    public String getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(String orderStatus) {
        this.orderStatus = orderStatus;
    }

    public String getTerminationDate() {
        return terminationDate;
    }

    public void setTerminationDate(String terminationDate) {
        this.terminationDate = terminationDate;
    }

    public CalcPricingParam getCalcPricingParam() {
        return calcPricingParam;
    }

    public void setCalcPricingParam(CalcPricingParam calcPricingParam) {
        this.calcPricingParam = calcPricingParam;
    }

    public CalcResultForm getCalcResultForm() {
        return calcResultForm;
    }

    public void setCalcResultForm(CalcResultForm calcResultForm) {
        this.calcResultForm = calcResultForm;
    }

    public String getpFormResult() {
        return pFormResult;
    }

    public void setpFormResult(String pFormResult) {
        this.pFormResult = pFormResult;
    }

    public String getCalcDate() {
        return calcDate;
    }

    public void setCalcDate(String calcDate) {
        this.calcDate = calcDate;
    }

    public BigDecimal getAmountCost() {
        return amountCost;
    }

    public void setAmountCost(BigDecimal amountCost) {
        this.amountCost = amountCost;
    }

    public String getRemindDate() {
        return remindDate;
    }

    public void setRemindDate(String remindDate) {
        this.remindDate = remindDate;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getDimAccId() {
        return dimAccId;
    }

    public void setDimAccId(String dimAccId) {
        this.dimAccId = dimAccId;
    }

    public BigDecimal getVolumeNum() {
        return volumeNum;
    }

    public void setVolumeNum(BigDecimal volumeNum) {
        this.volumeNum = volumeNum;
    }

    public String getpForm() {
        return pForm;
    }

    public void setpForm(String pForm) {
        this.pForm = pForm;
    }

    public String getpFormInstrument() {
        return pFormInstrument;
    }

    public void setpFormInstrument(String pFormInstrument) {
        this.pFormInstrument = pFormInstrument;
    }

    public String getpFormPricing() {
        return pFormPricing;
    }

    public void setpFormPricing(String pFormPricing) {
        this.pFormPricing = pFormPricing;
    }

    public CalcInstrumentForm getCalcInstrumentForm() {
        return calcInstrumentForm;
    }

    public void setCalcInstrumentForm(CalcInstrumentForm calcInstrumentForm) {
        this.calcInstrumentForm = calcInstrumentForm;
    }

    public CalcPricingForm getCalcPricingForm() {
        return calcPricingForm;
    }

    public void setCalcPricingForm(CalcPricingForm calcPricingForm) {
        this.calcPricingForm = calcPricingForm;
    }

    public double getLotSize() {
        return lotSize;
    }

    public void setLotSize(double lotSize) {
        this.lotSize = lotSize;
    }

    public String getPayDirection() {
        return payDirection;
    }

    public void setPayDirection(String payDirection) {
        this.payDirection = payDirection;
    }

    public String getEventStatus() {
        return eventStatus;
    }

    public void setEventStatus(String eventStatus) {
        this.eventStatus = eventStatus;
    }

    public String getEventExercise() {
        return eventExercise;
    }

    public void setEventExercise(String eventExercise) {
        this.eventExercise = eventExercise;
    }

    public double getStrike() {
        return strike;
    }

    public void setStrike(double strike) {
        this.strike = strike;
    }

    public String getPartyId() {
        return partyId;
    }

    public void setPartyId(String partyId) {
        this.partyId = partyId;
    }

    public String getPartyName() {
        return partyName;
    }

    public void setPartyName(String partyName) {
        this.partyName = partyName;
    }

    public CalcInstrumentForm getCalcExtraParam() {
        return calcInstrumentForm;
    }

    public void setCalcExtraParam(CalcInstrumentForm calcInstrumentForm) {
        this.calcInstrumentForm = calcInstrumentForm;
    }

    public String getCalendar() {
        return calendar;
    }

    public void setCalendar(String calendar) {
        this.calendar = calendar;
    }

    public BigDecimal getMargin() {
        return margin;
    }

    public void setMargin(BigDecimal margin) {
        this.margin = margin;
    }

    public String getpCalc() {
        return pCalc;
    }

    public void setpCalc(String pCalc) {
        this.pCalc = pCalc;
    }

    public String getpCalcInit() {
        return pCalcInit;
    }

    public void setpCalcInit(String pCalcInit) {
        this.pCalcInit = pCalcInit;
    }

    public String getpCalcPricing() {
        return pCalcPricing;
    }

    public void setpCalcPricing(String pCalcPricing) {
        this.pCalcPricing = pCalcPricing;
    }

    public String getpCalcInstrument() {
        return pCalcInstrument;
    }

    public void setpCalcInstrument(String pCalcInstrument) {
        this.pCalcInstrument = pCalcInstrument;
    }

    public String getTradeId() {
        return tradeId;
    }

    public void setTradeId(String tradeId) {
        this.tradeId = tradeId;
    }

    public String getTradeType() {
        return tradeType;
    }

    public void setTradeType(String tradeType) {
        this.tradeType = tradeType;
    }

    public String getTradeDate() {
        return tradeDate;
    }

    public void setTradeDate(String tradeDate) {
        this.tradeDate = tradeDate;
    }

    public String getTradeTime() {
        return tradeTime;
    }

    public void setTradeTime(String tradeTime) {
        this.tradeTime = tradeTime;
    }

    public Integer getTradeStatus() {
        return tradeStatus;
    }

    public void setTradeStatus(Integer tradeStatus) {
        this.tradeStatus = tradeStatus;
    }

    public String getOcFlag() {
        return ocFlag;
    }

    public void setOcFlag(String ocFlag) {
        this.ocFlag = ocFlag;
    }

    public String getAccId() {
        return accId;
    }

    public void setAccId(String accId) {
        this.accId = accId;
    }

    public String getAccName() {
        return accName;
    }

    public void setAccName(String accName) {
        this.accName = accName;
    }

    public String getAccRight() {
        return accRight;
    }

    public void setAccRight(String accRight) {
        this.accRight = accRight;
    }

    public String getAccIdCp() {
        return accIdCp;
    }

    public void setAccIdCp(String accIdCp) {
        this.accIdCp = accIdCp;
    }

    public String getAccNameCp() {
        return accNameCp;
    }

    public void setAccNameCp(String accNameCp) {
        this.accNameCp = accNameCp;
    }

    public String getiCode() {
        return iCode;
    }

    public void setiCode(String iCode) {
        this.iCode = iCode;
    }

    public String getaType() {
        return aType;
    }

    public void setaType(String aType) {
        this.aType = aType;
    }

    public String getmType() {
        return mType;
    }

    public void setmType(String mType) {
        this.mType = mType;
    }

    public Map getInstrumentInfo() {
        return instrumentInfo;
    }

    public void setInstrumentInfo(Map instrumentInfo) {
        this.instrumentInfo = instrumentInfo;
    }

    public BigDecimal getVolume() {
        return volume;
    }

    public void setVolume(BigDecimal volume) {
        this.volume = volume;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getFee() {
        return fee;
    }

    public void setFee(BigDecimal fee) {
        this.fee = fee;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public BigDecimal getMarginCost() {
        return marginCost;
    }

    public void setMarginCost(BigDecimal marginCost) {
        this.marginCost = marginCost;
    }

    public BigDecimal getBonus() {
        return bonus;
    }

    public void setBonus(BigDecimal bonus) {
        this.bonus = bonus;
    }

    public BigDecimal getAi() {
        return ai;
    }

    public void setAi(BigDecimal ai) {
        this.ai = ai;
    }

    public BigDecimal getDueVolume() {
        return dueVolume;
    }

    public void setDueVolume(BigDecimal dueVolume) {
        this.dueVolume = dueVolume;
    }

    public BigDecimal getDueBonus() {
        return dueBonus;
    }

    public void setDueBonus(BigDecimal dueBonus) {
        this.dueBonus = dueBonus;
    }

    public BigDecimal getDueAi() {
        return dueAi;
    }

    public void setDueAi(BigDecimal dueAi) {
        this.dueAi = dueAi;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public String getSetDate() {
        return setDate;
    }

    public void setSetDate(String setDate) {
        this.setDate = setDate;
    }

    public String getpTradeId() {
        return pTradeId;
    }

    public void setpTradeId(String pTradeId) {
        this.pTradeId = pTradeId;
    }

    public String getExtTradeId() {
        return extTradeId;
    }

    public void setExtTradeId(String extTradeId) {
        this.extTradeId = extTradeId;
    }

    public String getInstanceId() {
        return instanceId;
    }

    public void setInstanceId(String instanceId) {
        this.instanceId = instanceId;
    }

    public String getExtInfo() {
        return extInfo;
    }

    public void setExtInfo(String extInfo) {
        this.extInfo = extInfo;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getDimLs() {
        return dimLs;
    }

    public void setDimLs(String dimLs) {
        this.dimLs = dimLs;
    }

    public String getDimExtAccId() {
        return dimExtAccId;
    }

    public void setDimExtAccId(String dimExtAccId) {
        this.dimExtAccId = dimExtAccId;
    }

    public String getpCode() {
        return pCode;
    }

    public void setpCode(String pCode) {
        this.pCode = pCode;
    }

    public String getDimSource() {
        return dimSource;
    }

    public void setDimSource(String dimSource) {
        this.dimSource = dimSource;
    }

    public BigDecimal getDimIr() {
        return dimIr;
    }

    public void setDimIr(BigDecimal dimIr) {
        this.dimIr = dimIr;
    }

    public String getDimGuid() {
        return dimGuid;
    }

    public void setDimGuid(String dimGuid) {
        this.dimGuid = dimGuid;
    }

    public String getDimExpireDate() {
        return dimExpireDate;
    }

    public void setDimExpireDate(String dimExpireDate) {
        this.dimExpireDate = dimExpireDate;
    }

    public List<Trade> getDetails() {
        return details;
    }

    public void setDetails(List<Trade> details) {
        this.details = details;
    }

    public String getActionType() {
        return actionType;
    }

    public void setActionType(String actionType) {
        this.actionType = actionType;
    }

    public double getPlFloat() {
        return plFloat;
    }

    public void setPlFloat(double plFloat) {
        this.plFloat = plFloat;
    }

    public double getOldPrice() {
        return oldPrice;
    }

    public void setOldPrice(double oldPrice) {
        this.oldPrice = oldPrice;
    }

    public double getCalcPrice() {
        return calcPrice;
    }

    public void setCalcPrice(double calcPrice) {
        this.calcPrice = calcPrice;
    }

    public double getYield() {
        return yield;
    }

    public void setYield(double yield) {
        this.yield = yield;
    }

    public double getHisYield() {
        return hisYield;
    }

    public void setHisYield(double hisYield) {
        this.hisYield = hisYield;
    }

    public double getRealizedYield() {
        return realizedYield;
    }

    public void setRealizedYield(double realizedYield) {
        this.realizedYield = realizedYield;
    }

    public double getPremium() {
        return premium;
    }

    public void setPremium(double premium) {
        this.premium = premium;
    }

    public double getExerciseAmount() {
        return exerciseAmount;
    }

    public void setExerciseAmount(double exerciseAmount) {
        this.exerciseAmount = exerciseAmount;
    }

    public String getuICode() {
        return uICode;
    }

    public void setuICode(String uICode) {
        this.uICode = uICode;
    }

    public String getuAType() {
        return uAType;
    }

    public void setuAType(String uAType) {
        this.uAType = uAType;
    }

    public String getuMType() {
        return uMType;
    }

    public void setuMType(String uMType) {
        this.uMType = uMType;
    }

    public String getuIName() {
        return uIName;
    }

    public void setuIName(String uIName) {
        this.uIName = uIName;
    }

    public double getuPrice() {
        return uPrice;
    }

    public void setuPrice(double uPrice) {
        this.uPrice = uPrice;
    }

    public String getInstrument() {
        instrument = iCode + "," + aType + "," + mType;
        return instrument;
    }


    public String getExerciseType() {
        return exerciseType;
    }

    public void setExerciseType(String exerciseType) {
        this.exerciseType = exerciseType;
    }

    public String getProductType() {
        return productType;
    }

    public void setProductType(String productType) {
        this.productType = productType;
    }

    public String getIssueDate() {
        return issueDate;
    }

    public void setIssueDate(String issueDate) {
        this.issueDate = issueDate;
    }

    public String getMaturityDate() {
        return maturityDate;
    }

    public void setMaturityDate(String maturityDate) {
        this.maturityDate = maturityDate;
    }

    public double getNpv() {
        return npv;
    }

    public void setNpv(double npv) {
        this.npv = npv;
    }

    public double getDelta() {
        return delta;
    }

    public void setDelta(double delta) {
        this.delta = delta;
    }

    public double getCashDelta() {
        return cashDelta;
    }

    public void setCashDelta(double cashDelta) {
        this.cashDelta = cashDelta;
    }

    public double getGamma() {
        return gamma;
    }

    public void setGamma(double gamma) {
        this.gamma = gamma;
    }

    public double getCashGamma() {
        return cashGamma;
    }

    public void setCashGamma(double cashGamma) {
        this.cashGamma = cashGamma;
    }

    public double getTheta() {
        return theta;
    }

    public void setTheta(double theta) {
        this.theta = theta;
    }

    public double getVega() {
        return vega;
    }

    public void setVega(double vega) {
        this.vega = vega;
    }

    public double getRho() {
        return rho;
    }

    public void setRho(double rho) {
        this.rho = rho;
    }

    public String getOptionType() {
        return optionType;
    }

    public void setOptionType(String optionType) {
        this.optionType = optionType;
    }

    public BigDecimal getStrikePrice() {
        return strikePrice;
    }

    public void setStrikePrice(BigDecimal strikePrice) {
        this.strikePrice = strikePrice;
    }

    public BigDecimal getLowStrikePrice() {
        return lowStrikePrice;
    }

    public void setLowStrikePrice(BigDecimal lowStrikePrice) {
        this.lowStrikePrice = lowStrikePrice;
    }

    public BigDecimal getYield1() {
        return yield1;
    }

    public void setYield1(BigDecimal yield1) {
        this.yield1 = yield1;
    }

    public BigDecimal getYield2() {
        return yield2;
    }

    public void setYield2(BigDecimal yield2) {
        this.yield2 = yield2;
    }

    public BigDecimal getYield3() {
        return yield3;
    }

    public void setYield3(BigDecimal yield3) {
        this.yield3 = yield3;
    }

    public BigDecimal getTriggerPrice1() {
        return triggerPrice1;
    }

    public void setTriggerPrice1(BigDecimal triggerPrice1) {
        this.triggerPrice1 = triggerPrice1;
    }

    public BigDecimal getTriggerPrice2() {
        return triggerPrice2;
    }

    public void setTriggerPrice2(BigDecimal triggerPrice2) {
        this.triggerPrice2 = triggerPrice2;
    }

    public BigDecimal getFrontOptionFee() {
        return frontOptionFee;
    }

    public void setFrontOptionFee(BigDecimal frontOptionFee) {
        this.frontOptionFee = frontOptionFee;
    }

    public String getFrontOptionFeePaydate() {
        return frontOptionFeePaydate;
    }

    public void setFrontOptionFeePaydate(String frontOptionFeePaydate) {
        this.frontOptionFeePaydate = frontOptionFeePaydate;
    }

    public BigDecimal getFrontFee() {
        return frontFee;
    }

    public void setFrontFee(BigDecimal frontFee) {
        this.frontFee = frontFee;
    }

    public String getFrontFeePaydate() {
        return frontFeePaydate;
    }

    public void setFrontFeePaydate(String frontFeePaydate) {
        this.frontFeePaydate = frontFeePaydate;
    }

    public String getPaymentDate() {
        return paymentDate;
    }

    public void setPaymentDate(String paymentDate) {
        this.paymentDate = paymentDate;
    }

    public String getTerminateDate() {
        return terminateDate;
    }

    public void setTerminateDate(String terminateDate) {
        this.terminateDate = terminateDate;
    }

    public BigDecimal getTerminateFee() {
        return terminateFee;
    }

    public void setTerminateFee(BigDecimal terminateFee) {
        this.terminateFee = terminateFee;
    }

    public BigDecimal getParticipationRate1() {
        return participationRate1;
    }

    public void setParticipationRate1(BigDecimal participationRate1) {
        this.participationRate1 = participationRate1;
    }

    public BigDecimal getParticipationRate2() {
        return participationRate2;
    }

    public void setParticipationRate2(BigDecimal participationRate2) {
        this.participationRate2 = participationRate2;
    }

    public BigDecimal getFixedRate() {
        return fixedRate;
    }

    public void setFixedRate(BigDecimal fixedRate) {
        this.fixedRate = fixedRate;
    }

    public void setInstrument(String instrument) {
        this.instrument = instrument;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public Integer getNewVersion() {
        return newVersion;
    }

    public void setNewVersion(Integer newVersion) {
        this.newVersion = newVersion;
    }

    @Override
    public String toString() {
        return "Trade{" +
                "tradeId='" + tradeId + '\'' +
                ", tradeType='" + tradeType + '\'' +
                ", tradeDate='" + tradeDate + '\'' +
                ", tradeTime='" + tradeTime + '\'' +
                ", tradeStatus=" + tradeStatus +
                ", ocFlag='" + ocFlag + '\'' +
                ", accId='" + accId + '\'' +
                ", accRight='" + accRight + '\'' +
                ", accIdCp='" + accIdCp + '\'' +
                ", accNameCp='" + accNameCp + '\'' +
                ", iCode='" + iCode + '\'' +
                ", iName='" + iName + '\'' +
                ", accName='" + accName + '\'' +
                ", aType='" + aType + '\'' +
                ", mType='" + mType + '\'' +
                ", partyId='" + partyId + '\'' +
                ", partyName='" + partyName + '\'' +
                ", payDirection='" + payDirection + '\'' +
                ", productName='" + productName + '\'' +
                ", dimAccId='" + dimAccId + '\'' +
                ", remindDate='" + remindDate + '\'' +
                ", calcDate='" + calcDate + '\'' +
                ", calendar='" + calendar + '\'' +
                ", instrumentInfo=" + instrumentInfo +
                ", calcInstrumentForm=" + calcInstrumentForm +
                ", calcPricingForm=" + calcPricingForm +
                ", calcResultForm=" + calcResultForm +
                ", volumeNum=" + volumeNum +
                ", volume=" + volume +
                ", price=" + price +
                ", fee=" + fee +
                ", amount=" + amount +
                ", amountCost=" + amountCost +
                ", margin=" + margin +
                ", marginCost=" + marginCost +
                ", bonus=" + bonus +
                ", ai=" + ai +
                ", dueVolume=" + dueVolume +
                ", dueBonus=" + dueBonus +
                ", dueAi=" + dueAi +
                ", currency='" + currency + '\'' +
                ", instrument='" + instrument + '\'' +
                ", setDate='" + setDate + '\'' +
                ", pTradeId='" + pTradeId + '\'' +
                ", extTradeId='" + extTradeId + '\'' +
                ", instanceId='" + instanceId + '\'' +
                ", extInfo='" + extInfo + '\'' +
                ", userId='" + userId + '\'' +
                ", remark='" + remark + '\'' +
                ", dimLs='" + dimLs + '\'' +
                ", dimExtAccId='" + dimExtAccId + '\'' +
                ", pCode='" + pCode + '\'' +
                ", dimSource='" + dimSource + '\'' +
                ", dimIr=" + dimIr +
                ", dimGuid='" + dimGuid + '\'' +
                ", dimExpireDate='" + dimExpireDate + '\'' +
                ", details=" + details +
                ", actionType='" + actionType + '\'' +
                ", plFloat=" + plFloat +
                ", pForm='" + pForm + '\'' +
                ", pFormInstrument='" + pFormInstrument + '\'' +
                ", pFormPricing='" + pFormPricing + '\'' +
                ", pFormResult='" + pFormResult + '\'' +
                ", pCalc='" + pCalc + '\'' +
                ", pCalcInit='" + pCalcInit + '\'' +
                ", pCalcPricing='" + pCalcPricing + '\'' +
                ", pCalcInstrument='" + pCalcInstrument + '\'' +
                ", strike=" + strike +
                ", oldPrice=" + oldPrice +
                ", calcPrice=" + calcPrice +
                ", yield=" + yield +
                ", hisYield=" + hisYield +
                ", realizedYield=" + realizedYield +
                ", premium=" + premium +
                ", exerciseAmount=" + exerciseAmount +
                ", lotSize=" + lotSize +
                ", uICode='" + uICode + '\'' +
                ", uAType='" + uAType + '\'' +
                ", uMType='" + uMType + '\'' +
                ", uIName='" + uIName + '\'' +
                ", uPrice=" + uPrice +
                ", exerciseType='" + exerciseType + '\'' +
                ", eventStatus='" + eventStatus + '\'' +
                ", eventExercise='" + eventExercise + '\'' +
                ", productType='" + productType + '\'' +
                ", issueDate='" + issueDate + '\'' +
                ", maturityDate='" + maturityDate + '\'' +
                ", npv=" + npv +
                ", delta=" + delta +
                ", cashDelta=" + cashDelta +
                ", gamma=" + gamma +
                ", cashGamma=" + cashGamma +
                ", theta=" + theta +
                ", vega=" + vega +
                ", rho=" + rho +
                '}';
    }
}
